using BackData;
using Domain.DTOs.RBAC;
using MediatR;

namespace Team.API.Applocation.Command.Users.Departments
{
    /// <summary>
    /// 创建部门命令
    /// </summary>
    public class CreateDepartmentCommand : IRequest<APIResult<DepartmentDTO>>
    {
        /// <summary>
        /// 部门编号
        /// </summary>
        public string DepartmentCode { get; set; }

        /// <summary>
        /// 部门名称
        /// </summary>
        public string DepartmentName { get; set; }

        /// <summary>
        /// 父级部门ID（0表示顶级部门）
        /// </summary>
        public long ParentId { get; set; } = 0;

        /// <summary>
        /// 部门描述
        /// </summary>
        public string? Description { get; set; }

        /// <summary>
        /// 部门负责人ID
        /// </summary>
        public long? LeaderId { get; set; }

        /// <summary>
        /// 部门负责人姓名
        /// </summary>
        public string? LeaderName { get; set; }

        /// <summary>
        /// 排序号
        /// </summary>
        public int Sort { get; set; } = 0;

        /// <summary>
        /// 联系电话
        /// </summary>
        public string? Phone { get; set; }

        /// <summary>
        /// 部门邮箱
        /// </summary>
        public string? Email { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }
    }
}
